package light.mvc.autoCode;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import javax.persistence.Column;

import light.mvc.utils.dataVO;


public class File4SendLogOutput {
	
//	static String PAGE="wxn";
//	static String XO="accessToken";
//	static String DO="AccessToken";
//	static String VO="AccessTokenVO";
//	static String BO="AccessTokenBO";
//	static String DAO="accessTokenDao";
	
	static String tableName="SYS_SEND_LOG";
	static String PAGE="sys";
	static String XO="sendLog";
	static String DO="SendLog";
	static String VO="SendLogVO";
	static String BO="SendLogBO";
	static String DAO="SendLogDao";
	
	static HashMap<String, String> hashMap = new HashMap<String, String>();  
	
	static private List<dataVO> listDataVO = new ArrayList<dataVO>(); // 用户
	
	public static void main(String[] args) {
		
		String 
		temp="主题,sendTheme,true,SendTheme,SEND_THEME,String:";
		temp="主题类型,sendThemeStyle,true,SendThemeStyle,SEND_THEME_STYLE,String:";
		temp+="目的地,sendDestination,false,SendDesination,SEND_DESINATION,String:";
		temp+="状态,sendStatus,false,SendStatus,SEND_STATUS,Integer:";
		temp+="送达时间,sendTime,false,SendTime,SEND_TIME,Date:";
		temp+="备注,sendNote,false,SendNote,SEND_NOTE,String:";
		
		
		String [] list=temp.split(":");
		
		for(String obj:list){
			String [] keyVal=obj.split(",");
			dataVO a=new dataVO();
			a.setKey(keyVal[0]);
			a.setVal(keyVal[1]);
			a.setNull(Boolean.getBoolean(keyVal[2]));
			a.setSetName(keyVal[3]);
			a.setGetName(keyVal[3]);
			a.setDataName(keyVal[4]);
			a.setKeySytle(keyVal[5]);
			listDataVO.add(a);
		}
	    
	    
		byte[] buff = new byte[] {};
		try {
			String BO=BO();
			if(BO.length()>0){
				String aa=BO;
				buff = aa.getBytes();
				FileOutputStream out = new FileOutputStream("D://java//"+DO+"BO.java");
				out.write(buff, 0, buff.length);
			}
			
			String VO=VO();
			if(VO.length()>0){
				String aa=VO;
				buff = aa.getBytes();
				FileOutputStream out = new FileOutputStream("D://java//"+DO+"VO.java");
				out.write(buff, 0, buff.length);
			}
			
			String serverI=serverI();
			if(serverI.length()>0){
				String aa=serverI;
				buff = aa.getBytes();
				FileOutputStream out = new FileOutputStream("D://java//"+DO+"ServiceI.java");
				out.write(buff, 0, buff.length);
			}
			
			String serverImpl=serverImpl();
			if(serverImpl.length()>0){
				String aa=serverImpl;
				buff = aa.getBytes();
				FileOutputStream out = new FileOutputStream("D://java//"+DO+"ServiceImpl.java");
				out.write(buff, 0, buff.length);
			}
			
			String controller=controller();
			if(controller.length()>0){
				String aa=controller;
				buff = aa.getBytes();
				FileOutputStream out = new FileOutputStream("D://java//"+DO+"Controller.java");
				out.write(buff, 0, buff.length);
			}
			
			String viewMain=viewMain();
			if(viewMain.length()>0){
				String aa=viewMain;
				buff = aa.getBytes();
				FileOutputStream out = new FileOutputStream("D://java//"+XO+".jsp");
				out.write(buff, 0, buff.length);
			}
			
			String viewAdd=viewAdd();
			if(viewAdd.length()>0){
				String aa=viewAdd;
				buff = aa.getBytes();
				FileOutputStream out = new FileOutputStream("D://java//"+XO+"Add.jsp");
				out.write(buff, 0, buff.length);
			}
			
			String viewEdit=viewEdit();
			if(viewEdit.length()>0){
				String aa=viewEdit;
				buff = aa.getBytes();
				FileOutputStream out = new FileOutputStream("D://java//"+XO+"Edit.jsp");
				out.write(buff, 0, buff.length);
			}
			
			String viewView=viewView();
			if(viewView.length()>0){
				String aa=viewView;
				buff = aa.getBytes();
				FileOutputStream out = new FileOutputStream("D://java//"+XO+"View.jsp");
				out.write(buff, 0, buff.length);
			}
			

		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	public static String serverImpl(){
		
		
		StringBuffer temp  =new StringBuffer();
		temp.append("package light.mvc.service."+PAGE+".impl;\r\n");
		temp.append("\r\n");
		temp.append("import java.util.ArrayList;\r\n");
		temp.append("import java.util.HashMap;\r\n");
		temp.append("import java.util.List;\r\n");
		temp.append("import java.util.Map;\r\n");
		temp.append("\r\n");
		temp.append("import light.mvc.dao.BaseDaoI;\r\n");
		temp.append("import light.mvc.pageModel.base.PageFilter;\r\n");
		temp.append("import light.mvc.model."+PAGE+"."+BO+";\r\n");
		temp.append("import light.mvc.pageModel."+PAGE+"."+VO+";\r\n");
		temp.append("import light.mvc.service."+PAGE+"."+DO+"ServiceI;\r\n");
		temp.append("\r\n");
		temp.append("import org.springframework.beans.BeanUtils;\r\n");
		temp.append("import org.springframework.beans.factory.annotation.Autowired;\r\n");
		temp.append("import org.springframework.stereotype.Service;\r\n");
		temp.append("\r\n");
		temp.append("\r\n");
		temp.append("@Service\r\n");
		temp.append("public class "+DO+"ServiceImpl implements "+DO+"ServiceI {\r\n");
		temp.append("\r\n");
		temp.append("   @Autowired\r\n");
		temp.append("   private BaseDaoI<"+BO+"> "+DAO+";\r\n");
		temp.append("\r\n");
		temp.append("   @Override\r\n");
		temp.append("   public void add("+VO+" r) {\r\n");
		temp.append("       "+BO+" t = new "+BO+"();\r\n");
		
		for(dataVO obj:listDataVO){
			String val="空值";
            if(obj.getVal().length()>0){
            	val=obj.getVal();
            	val=val.substring(0,1).toUpperCase()+val.substring(1);
            }
            temp.append("       t.set"+val+"(r.get"+val+"());\r\n");
        }
		
		temp.append("       "+DAO+".save(t);\r\n");
		temp.append("   }\r\n");
		temp.append("\r\n");
		temp.append("   @Override\r\n");
		temp.append("   public void delete(Long id) {\r\n");
		temp.append("       "+BO+" t = "+DAO+".get("+BO+".class, id);\r\n");
		temp.append("       "+DAO+".delete(t);\r\n");
		temp.append("   }\r\n");
		temp.append("\r\n");
		temp.append("   @Override\r\n");
		temp.append("   public void edit("+VO+" r) {\r\n");
		temp.append("       "+BO+" t = "+DAO+".get("+BO+".class, r.getId());\r\n");
		
		for(dataVO obj:listDataVO){
			String val="空值";
            if(obj.getVal().length()>0){
            	val=obj.getVal();
            	val=val.substring(0,1).toUpperCase()+val.substring(1);
            }
            temp.append("       t.set"+val+"(r.get"+val+"());\r\n");
        }
		
		temp.append("       "+DAO+".update(t);\r\n");
		temp.append("   }\r\n");
		temp.append("\r\n");
		temp.append("   @Override\r\n");
		temp.append("   public "+VO+" get(Long id) {\r\n");
		temp.append("       "+BO+" t = "+DAO+".get("+BO+".class, id);\r\n");
		temp.append("       "+VO+" r = new "+VO+"();\r\n");
		temp.append("       r.setId(id);\r\n");
		temp.append("       r.setId(t.getId());\r\n");
		for(dataVO obj:listDataVO){
			String val="空值";
            if(obj.getKey().length()>0){
            	val=obj.getVal();
            	val=val.substring(0,1).toUpperCase()+val.substring(1);
            }
            temp.append("       r.set"+val+"(t.get"+val+"());\r\n");
        }
		
		temp.append("       return r;\r\n");
		temp.append("   }\r\n");
		temp.append("\r\n");
		temp.append("   @Override\r\n");
		temp.append("   public List<"+VO+"> dataGrid("+VO+" "+XO+", PageFilter ph) {\r\n");
		temp.append("       List<"+VO+"> ul = new ArrayList<"+VO+">();\r\n");
		temp.append("       Map<String, Object> params = new HashMap<String, Object>();\r\n");
		temp.append("       String hql = \" from "+BO+" t \";\r\n");
		temp.append("       List<"+BO+"> l = "+DAO+".find(hql + whereHql("+XO+", params) + orderHql(ph), params, ph.getPage(), ph.getRows());\r\n");
		temp.append("       for ("+BO+" t : l) {\r\n");
		temp.append("           "+VO+" u = new "+VO+"();\r\n");
		temp.append("           BeanUtils.copyProperties(t, u);\r\n");
		temp.append("           ul.add(u);\r\n");
		temp.append("       }\r\n");
		temp.append("       return ul;\r\n");
		temp.append("   }\r\n");
		temp.append("\r\n");
		temp.append("   @Override\r\n");
		temp.append("   public Long count("+VO+" "+XO+", PageFilter ph) {\r\n");
		temp.append("       Map<String, Object> params = new HashMap<String, Object>();\r\n");
		temp.append("       String hql = \" from "+BO+" t \";\r\n");
		temp.append("       return "+DAO+".count(\"select count(*) \" + hql + whereHql("+XO+", params), params);\r\n");
		temp.append("   }\r\n");
		temp.append("\r\n");
		temp.append("   private String whereHql("+VO+" "+XO+", Map<String, Object> params) {\r\n");
		temp.append("       String hql = \"\";\r\n");
		temp.append("       if ("+XO+" != null) {\r\n");
		temp.append("           hql += \" where 1=1 \";\r\n");
		temp.append("           if ("+XO+".getId() != null) {\r\n");
		temp.append("               hql += \" and t.name like :name\";\r\n");
		temp.append("               params.put(\"name\", \"%%\" + "+XO+".getId() + \"%%\");\r\n");
		temp.append("           }\r\n");
		temp.append("       }\r\n");
		temp.append("       return hql;\r\n");
		temp.append("   }\r\n");
		temp.append("\r\n");
		temp.append("   private String orderHql(PageFilter ph) {\r\n");
		temp.append("       String orderString = \"\";\r\n");
		temp.append("       if ((ph.getSort() != null) && (ph.getOrder() != null)) {\r\n");
		temp.append("           orderString = \" order by t.\" + ph.getSort() + \" \" + ph.getOrder();\r\n");
		temp.append("       }\r\n");
		temp.append("       return orderString;\r\n");
		temp.append("   }\r\n");
		temp.append("\r\n");
		temp.append("}");
		return temp.toString();
	}

	public static String serverI(){
		StringBuffer temp  =new StringBuffer();
		temp.append("package light.mvc.service."+PAGE+";\r\n");
		temp.append("\r\n");
		temp.append("import java.util.List;\r\n");
		temp.append("\r\n");
		temp.append("import light.mvc.pageModel.base.PageFilter;\r\n");
		temp.append("import light.mvc.pageModel."+PAGE+"."+VO+";\r\n");
		temp.append("\r\n");
		temp.append("public interface "+DO+"ServiceI {\r\n");
		temp.append("\r\n");
		temp.append("	public List<"+VO+"> dataGrid("+VO+" "+XO+", PageFilter ph);\r\n");
		temp.append("\r\n");
		temp.append("	public Long count("+VO+" "+XO+", PageFilter ph);\r\n");
		temp.append("\r\n");
		temp.append("	public void add("+VO+" "+XO+");\r\n");
		temp.append("\r\n");
		temp.append("	public void delete(Long id);\r\n");
		temp.append("\r\n");
		temp.append("	public void edit("+VO+" "+XO+");\r\n");
		temp.append("\r\n");
		temp.append("	public "+VO+" get(Long id);\r\n");
		temp.append("\r\n");
		temp.append("}\r\n");
		return temp.toString();
	}

	public static String controller(){
		StringBuffer temp  =new StringBuffer();
		temp.append("package light.mvc.controller."+PAGE+";\r\n");
		temp.append("\r\n");
		temp.append("import javax.servlet.http.HttpServletRequest;\r\n");
		temp.append("\r\n");
		temp.append("import light.mvc.controller.base.BaseController;\r\n");
		temp.append("import light.mvc.pageModel.base.Grid;\r\n");
		temp.append("import light.mvc.pageModel.base.Json;\r\n");
		temp.append("import light.mvc.pageModel.base.PageFilter;\r\n");
		temp.append("import light.mvc.pageModel."+PAGE+"."+VO+";\r\n");
		temp.append("import light.mvc.service."+PAGE+"."+DO+"ServiceI;\r\n");
		temp.append("\r\n");
		temp.append("import org.springframework.beans.factory.annotation.Autowired;\r\n");
		temp.append("import org.springframework.stereotype.Controller;\r\n");
		temp.append("import org.springframework.web.bind.annotation.RequestMapping;\r\n");
		temp.append("import org.springframework.web.bind.annotation.ResponseBody;\r\n");
		temp.append("\r\n");
		temp.append("@Controller\r\n");
		temp.append("@RequestMapping(\"/"+XO+"\")\r\n");
		temp.append("public class "+DO+"Controller extends BaseController {\r\n");
		temp.append("\r\n");
		temp.append("	@Autowired\r\n");
		temp.append("	private "+DO+"ServiceI "+XO+"Service;\r\n");
		temp.append("\r\n");
		temp.append("	@RequestMapping(\"/manager\")\r\n");
		temp.append("	public String manager() {\r\n");
		temp.append("		return \"/"+PAGE+"/"+XO+"\";\r\n");
		temp.append("	}\r\n");
		temp.append("\r\n");
		temp.append("	@RequestMapping(\"/dataGrid\")\r\n");
		temp.append("	@ResponseBody\r\n");
		temp.append("	public Grid dataGrid("+VO+" "+XO+", PageFilter ph) {\r\n");
		temp.append("		Grid grid = new Grid();\r\n");
		temp.append("		grid.setRows("+XO+"Service.dataGrid("+XO+", ph));\r\n");
		temp.append("		grid.setTotal("+XO+"Service.count("+XO+", ph));\r\n");
		temp.append("		return grid;\r\n");
		temp.append("	}\r\n");
		temp.append("\r\n");
		temp.append("	@RequestMapping(\"/viewPage\")\r\n");
		temp.append("	public String viewPage(HttpServletRequest request, Long id) {\r\n");
		temp.append("		"+VO+" r = "+XO+"Service.get(id);\r\n");
		temp.append("		request.setAttribute(\""+XO+"\", r);\r\n");
		temp.append("		return \"/"+PAGE+"/"+XO+"View\";\r\n");
		temp.append("	}\r\n");
		temp.append("\r\n");
		temp.append("	@RequestMapping(\"/addPage\")\r\n");
		temp.append("	public String addPage() {\r\n");
		temp.append("		return \"/"+PAGE+"/"+XO+"Add\";\r\n");
		temp.append("	}\r\n");
		temp.append("\r\n");
		temp.append("	@RequestMapping(\"/add\")\r\n");
		temp.append("	@ResponseBody\r\n");
		temp.append("	public Json add("+VO+" "+XO+") {\r\n");
		temp.append("		Json j = new Json();\r\n");
		temp.append("		try {\r\n");
		temp.append("			"+XO+"Service.add("+XO+");\r\n");
		temp.append("			j.setSuccess(true);\r\n");
		temp.append("			j.setMsg(\"添加成功！\");\r\n");
		temp.append("		} catch (Exception e) {\r\n");
		temp.append("			j.setMsg(e.getMessage());\r\n");
		temp.append("		}\r\n");
		temp.append("		return j;\r\n");
		temp.append("	}\r\n");
		temp.append("\r\n");
		temp.append("	@RequestMapping(\"/delete\")\r\n");
		temp.append("	@ResponseBody\r\n");
		temp.append("	public Json delete(Long id) {\r\n");
		temp.append("		Json j = new Json();\r\n");
		temp.append("		try {\r\n");
		temp.append("			"+XO+"Service.delete(id);\r\n");
		temp.append("			j.setMsg(\"删除成功！\");\r\n");
		temp.append("			j.setSuccess(true);\r\n");
		temp.append("		} catch (Exception e) {\r\n");
		temp.append("			j.setMsg(e.getMessage());\r\n");
		temp.append("		}\r\n");
		temp.append("		return j;\r\n");
		temp.append("	}\r\n");
		temp.append("\r\n");
		temp.append("	@RequestMapping(\"/get\")\r\n");
		temp.append("	@ResponseBody\r\n");
		temp.append("	public "+VO+" get(Long id) {\r\n");
		temp.append("		return "+XO+"Service.get(id);\r\n");
		temp.append("	}\r\n");
		temp.append("\r\n");
		temp.append("	@RequestMapping(\"/editPage\")\r\n");
		temp.append("	public String editPage(HttpServletRequest request, Long id) {\r\n");
		temp.append("		"+VO+" r = "+XO+"Service.get(id);\r\n");
		temp.append("		request.setAttribute(\""+XO+"\", r);\r\n");
		temp.append("		return \"/"+PAGE+"/"+XO+"Edit\";\r\n");
		temp.append("	}\r\n");
		temp.append("\r\n");
		temp.append("	@RequestMapping(\"/edit\")\r\n");
		temp.append("	@ResponseBody\r\n");
		temp.append("	public Json edit("+VO+" "+XO+") {\r\n");
		temp.append("		Json j = new Json();\r\n");
		temp.append("		try {\r\n");
		temp.append("			"+XO+"Service.edit("+XO+");\r\n");
		temp.append("			j.setSuccess(true);\r\n");
		temp.append("			j.setMsg(\"编辑成功！\");\r\n");
		temp.append("		} catch (Exception e) {\r\n");
		temp.append("			j.setMsg(e.getMessage());\r\n");
		temp.append("		}\r\n");
		temp.append("		return j;\r\n");
		temp.append("	}\r\n");
		temp.append("}");

		return temp.toString();
	}
	
	public static String viewMain(){
		StringBuffer temp  =new StringBuffer();
		temp.append("<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\r\n");
		temp.append("<%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\" %>\r\n");
		temp.append("<%@ taglib prefix=\"fn\" uri=\"http://java.sun.com/jsp/jstl/functions\"%>\r\n");
		temp.append("<c:set var=\"ctx\" value=\"${pageContext.request.contextPath}\"/>\r\n");
		temp.append("<!DOCTYPE html>\r\n");
		temp.append("<html>\r\n");
		temp.append("<head>\r\n");
		temp.append("<jsp:include page=\"../inc.jsp\"></jsp:include>\r\n");
		temp.append("<meta http-equiv=\"X-UA-Compatible\" content=\"edge\" />\r\n");
		temp.append("<c:if test=\"${fn:contains(sessionInfo.resourceList, '/"+XO+"/edit')}\">\r\n");
		temp.append("	<script type=\"text/javascript\">\r\n");
		temp.append("		$.canEdit = true;\r\n");
		temp.append("	</script>\r\n");
		temp.append("</c:if>\r\n");
		temp.append("<c:if test=\"${fn:contains(sessionInfo.resourceList, '/"+XO+"/delete')}\">\r\n");
		temp.append("	<script type=\"text/javascript\">\r\n");
		temp.append("		$.canDelete = true;\r\n");
		temp.append("	</script>\r\n");
		temp.append("</c:if>\r\n");
		temp.append("<c:if test=\"${fn:contains(sessionInfo.resourceList, '/"+XO+"/view')}\">\r\n");
		temp.append("	<script type=\"text/javascript\">\r\n");
		temp.append("		$.canView = true;\r\n");
		temp.append("	</script>\r\n");
		temp.append("</c:if>\r\n");
		temp.append("<title>"+XO+"管理</title>\r\n");
		temp.append("	<script type=\"text/javascript\">\r\n");
		temp.append("	var dataGrid;\r\n");
		temp.append("	$(function() {\r\n");
		temp.append("		dataGrid = $('#dataGrid').datagrid({\r\n");
		temp.append("			url : '${ctx}' + '/"+XO+"/dataGrid',\r\n");
		temp.append("			striped : true,\r\n");
		temp.append("			rownumbers : true,\r\n");
		temp.append("			pagination : true,\r\n");
		temp.append("			singleSelect : true,\r\n");
		temp.append("			idField : 'id',\r\n");
		temp.append("			sortName : 'id',\r\n");
		temp.append("			sortOrder : 'asc',\r\n");
		temp.append("			pageSize : 50,\r\n");
		temp.append("			pageList : [ 10, 20, 30, 40, 50, 100, 200, 300, 400, 500 ],\r\n");
		temp.append("			frozenColumns : [ [ {\r\n");
		temp.append("				width : '100',\r\n");
		temp.append("				title : 'id',\r\n");
		temp.append("				field : 'id',\r\n");
		temp.append("				sortable : true\r\n");
		
		for(dataVO obj:listDataVO){
			String key="空值";
			String val="空值";
			String isNullState="";
            if(obj.getKey().length()>0){
            	key=obj.getKey();
            }
            if(obj.getVal().length()>0){
            	val=obj.getVal();
            }
            if(obj.isNull){
            	isNullState="data-options=\"required:true\"";
            }
            if(obj.getKeySytle().equals("Integer")){
            	temp.append("			}, {\r\n");
        		temp.append("				width : '80',\r\n");
        		temp.append("				title : '"+key+"',\r\n");
        		temp.append("				field : '"+val+"',\r\n");
        		temp.append("				formatter : function(value, row, index) {\r\n");	
        		temp.append("					switch (value) {\r\n");	
        		temp.append("						case 0:{\r\n");	
        		temp.append("							return '值';\r\n");	
        		temp.append("						}\r\n");	
        		temp.append("					}\r\n");
        		temp.append("				}\r\n");
            }else{
            	temp.append("			}, {\r\n");
        		temp.append("				width : '80',\r\n");
        		temp.append("				title : '"+key+"',\r\n");
        		temp.append("				field : '"+val+"',\r\n");
        		temp.append("				sortable : true\r\n");
            }
            
			
    		
        }
		

		temp.append("			   }, {\r\n");
		temp.append("				field : 'action',\r\n");
		temp.append("				title : '操作',\r\n");
		temp.append("				width : 120,\r\n");
		temp.append("				formatter : function(value, row, index) {\r\n");
		temp.append("					var str = '&nbsp;';\r\n");
		temp.append("						if ($.canView) {\r\n");
		temp.append("							str += $.formatString('<a href=\"javascript:void(0)\" onclick=\"viewFun(\\'{0}\\');\" >查看</a>', row.id);\r\n");
		temp.append("						}\r\n");
		temp.append("					if(row.isdefault!=0){\r\n");
		temp.append("						str += '&nbsp;&nbsp;|&nbsp;&nbsp;';\r\n");
		temp.append("						if ($.canEdit) {\r\n");
		temp.append("							str += $.formatString('<a href=\"javascript:void(0)\" onclick=\"editFun(\\'{0}\\');\" >编辑</a>', row.id);\r\n");
		temp.append("						}\r\n");
		temp.append("						str += '&nbsp;&nbsp;|&nbsp;&nbsp;';\r\n");
		temp.append("						if ($.canDelete) {\r\n");
		temp.append("							str += $.formatString('<a href=\"javascript:void(0)\" onclick=\"deleteFun(\\'{0}\\');\" >删除</a>', row.id);\r\n");
		temp.append("						}\r\n");
		temp.append("					}\r\n");
		temp.append("					return str;\r\n");
		temp.append("				}\r\n");
		temp.append("			} ] ],\r\n");
		temp.append("			toolbar : '#toolbar'\r\n");
		temp.append("		});\r\n");
		temp.append("	});\r\n");
		temp.append("	\r\n");
		temp.append("	function addFun() {\r\n");
		temp.append("		parent.$.modalDialog({\r\n");
		temp.append("			title : '添加',\r\n");
		temp.append("			width : 500,\r\n");
		temp.append("			height : 400,\r\n");
		temp.append("			href : '${ctx}/"+XO+"/addPage',\r\n");
		temp.append("			buttons : [ {\r\n");
		temp.append("				text : '添加',\r\n");
		temp.append("				handler : function() {\r\n");
		temp.append("					parent.$.modalDialog.openner_dataGrid = dataGrid;//因为添加成功之后，需要刷新这个treeGrid，所以先预定义好\r\n");
		temp.append("					var f = parent.$.modalDialog.handler.find('#"+XO+"AddForm');\r\n");
		temp.append("					f.submit();\r\n");
		temp.append("				}\r\n");
		temp.append("			} ]\r\n");
		temp.append("		});\r\n");
		temp.append("	}\r\n");
		temp.append("	\r\n");
		temp.append("	function deleteFun(id) {\r\n");
		temp.append("		if (id == undefined) {//点击右键菜单才会触发这个\r\n");
		temp.append("			var rows = dataGrid.datagrid('getSelections');\r\n");
		temp.append("			id = rows[0].id;\r\n");
		temp.append("		} else {//点击操作里面的删除图标会触发这个\r\n");
		temp.append("			dataGrid.datagrid('unselectAll').datagrid('uncheckAll');\r\n");
		temp.append("		}\r\n");
		temp.append("		parent.$.messager.confirm('询问', '您是否要删除当前"+XO+"？', function(b) {\r\n");
		temp.append("			if (b) {\r\n");
		temp.append("				progressLoad();\r\n");
		temp.append("				$.post('${ctx}/"+XO+"/delete', {\r\n");
		temp.append("					id : id\r\n");
		temp.append("				}, function(result) {\r\n");
		temp.append("					if (result.success) {\r\n");
		temp.append("						parent.$.messager.alert('提示', result.msg, 'info');\r\n");
		temp.append("						dataGrid.datagrid('reload');\r\n");
		temp.append("					}\r\n");
		temp.append("					progressClose();\r\n");
		temp.append("				}, 'JSON');\r\n");
		temp.append("			}\r\n");
		temp.append("		});\r\n");
		temp.append("	}\r\n");
		temp.append("	\r\n");
		temp.append("	function editFun(id) {\r\n");
		temp.append("		if (id == undefined) {\r\n");
		temp.append("			var rows = dataGrid.datagrid('getSelections');\r\n");
		temp.append("			id = rows[0].id;\r\n");
		temp.append("		} else {\r\n");
		temp.append("			dataGrid.datagrid('unselectAll').datagrid('uncheckAll');\r\n");
		temp.append("		}\r\n");
		temp.append("		parent.$.modalDialog({\r\n");
		temp.append("			title : '编辑',\r\n");
		temp.append("			width : 500,\r\n");
		temp.append("			height : 400,\r\n");
		temp.append("			href : '${ctx}/"+XO+"/editPage?id=' + id,\r\n");
		temp.append("			buttons : [ {\r\n");
		temp.append("				text : '编辑',\r\n");
		temp.append("				handler : function() {\r\n");
		temp.append("					parent.$.modalDialog.openner_dataGrid = dataGrid;//因为添加成功之后，需要刷新这个dataGrid，所以先预定义好\r\n");
		temp.append("					var f = parent.$.modalDialog.handler.find('#"+XO+"EditForm');\r\n");
		temp.append("					f.submit();\r\n");
		temp.append("				}\r\n");
		temp.append("			} ]\r\n");
		temp.append("		});\r\n");
		temp.append("	}\r\n");
		temp.append("	\r\n");
		temp.append("	function viewFun(id) {\r\n");
		temp.append("		if (id == undefined) {\r\n");
		temp.append("			var rows = dataGrid.datagrid('getSelections');\r\n");
		temp.append("			id = rows[0].id;\r\n");
		temp.append("		} else {\r\n");
		temp.append("			dataGrid.datagrid('unselectAll').datagrid('uncheckAll');\r\n");
		temp.append("		}\r\n");
		temp.append("		\r\n");
		temp.append("		parent.$.modalDialog({\r\n");
		temp.append("			title : '詳情',\r\n");
		temp.append("			width : 500,\r\n");
		temp.append("			height : 400,\r\n");
		temp.append("			href : '${ctx}/"+XO+"/viewPage?id=' + id\r\n");
		temp.append("		});\r\n");
		temp.append("	}\r\n");
		temp.append("	\r\n");
		temp.append("	</script>\r\n");
		temp.append("</head>\r\n");
		temp.append("<body class=\"easyui-layout\" data-options=\"fit:true,border:false\">\r\n");
		temp.append("	<div data-options=\"region:'center',fit:true,border:false\">\r\n");
		temp.append("		<table id=\"dataGrid\" data-options=\"fit:true,border:false\"></table>\r\n");
		temp.append("	</div>\r\n");
		temp.append("	<div id=\"toolbar\" style=\"display: none;\">\r\n");
		temp.append("		<c:if test=\"${fn:contains(sessionInfo.resourceList, '/"+XO+"/add')}\">\r\n");
		temp.append("			<a onclick=\"addFun();\" href=\"javascript:void(0);\" class=\"easyui-linkbutton\" data-options=\"plain:true,iconCls:'icon-add'\">添加</a>\r\n");
		temp.append("		</c:if>\r\n");
		temp.append("	</div>\r\n");
		temp.append("</body>\r\n");
		temp.append("</html>\r\n");
		return temp.toString();
	}
	
	public static String viewAdd(){
		StringBuffer temp  =new StringBuffer();
		temp.append("<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\r\n");
		temp.append("<%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\"%>\r\n");
		temp.append("<script type=\"text/javascript\">\r\n");
		temp.append("	$(function() {\r\n");
		temp.append("\r\n");
		temp.append("		$('#"+XO+"AddForm').form({\r\n");
		temp.append("			url : '${pageContext.request.contextPath}/"+XO+"/add',\r\n");
		temp.append("			onSubmit : function() {\r\n");
		temp.append("				progressLoad();\r\n");
		temp.append("				var isValid = $(this).form('validate');\r\n");
		temp.append("				if (!isValid) {\r\n");
		temp.append("					progressClose();\r\n");
		temp.append("				}\r\n");
		temp.append("				return isValid;\r\n");
		temp.append("			},\r\n");
		temp.append("			success : function(result) {\r\n");
		temp.append("				progressClose();\r\n");
		temp.append("				result = $.parseJSON(result);\r\n");
		temp.append("				if (result.success) {\r\n");
		temp.append("					parent.$.modalDialog.openner_dataGrid.datagrid('reload');//之所以能在这里调用到parent.$.modalDialog.openner_dataGrid这个对象，是因为user.jsp页面预定义好了\r\n");
		temp.append("					parent.$.modalDialog.handler.dialog('close');\r\n");
		temp.append("				} else {\r\n");
		temp.append("					parent.$.messager.alert('错误', result.msg, 'error');\r\n");
		temp.append("				}\r\n");
		temp.append("			}\r\n");
		temp.append("		});\r\n");
		temp.append("	});\r\n");
		temp.append("</script>\r\n");
		temp.append("<div class=\"easyui-layout\" data-options=\"fit:true,border:false\" >\r\n");
		temp.append("	<div data-options=\"region:'center',border:false\" title=\"\" style=\"overflow: hidden;padding: 3px;\" >\r\n");
		temp.append("		<form id=\""+XO+"AddForm\" method=\"post\">\r\n");
		temp.append("			<table class=\"grid\">\r\n");
		
		for(dataVO obj:listDataVO){
			String key="空值";
			String val="空值";
			String isNullState="";
            if(obj.getKey().length()>0){
            	key=obj.getKey();
            }
            if(obj.getVal().length()>0){
            	val=obj.getVal();
            }
            if(obj.isNull){
            	isNullState="data-options=\"required:true\"";
            }
            if(obj.getKeySytle().equals("Date")){
            	temp.append("				<tr>\r\n");
        		temp.append("					<td>"+key+"</td>\r\n");
        		temp.append("					<td><input name=\""+val+"\" type=\"text\" onclick=\"WdatePicker({readOnly:true,dateFmt:'yyyy-MM-dd HH:mm:ss'})\" readonly=\"readonly\"></td>\r\n");
        		temp.append("				</tr>\r\n");
            }else if(obj.getKeySytle().equals("Integer")){
            	temp.append("				<tr>\r\n");
        		temp.append("					<td>"+key+"</td>\r\n");
        		temp.append("					<td>\r\n");
				temp.append("					<select id="+val+" name="+val+" class=\"easyui-combobox\" data-options=\"width:140,height:29,editable:false,panelHeight:'auto'\">\r\n");
				temp.append("					<option value=\"0\">值</option>\r\n");
				temp.append("					</select>\r\n");
				temp.append("					</td>\r\n");
        		temp.append("				</tr>\r\n");			
            }else{
            	temp.append("				<tr>\r\n");
        		temp.append("					<td>"+key+"</td>\r\n");
        		temp.append("					<td><input name=\""+val+"\" type=\"text\" placeholder=\"请输入"+key+"\" class=\"easyui-validatebox\" "+isNullState+" value=\"\"></td>\r\n");
        		temp.append("				</tr>\r\n");
            }
        }
		

		
		temp.append("			</table>\r\n");
		temp.append("		</form>\r\n");
		temp.append("	</div>\r\n");
		temp.append("</div>\r\n");
		return temp.toString();
	}
	
	public static String viewEdit(){
		StringBuffer temp  =new StringBuffer();
		temp.append("<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\r\n");
		temp.append("<%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\"%>\r\n");
		temp.append("<c:set var=\"ctx\" value=\"${pageContext.request.contextPath}\"/>\r\n");
		temp.append("<script type=\"text/javascript\">\r\n");
		temp.append("	$(function() {\r\n");
		temp.append("		\r\n");
		temp.append("		$('#"+XO+"EditForm').form({\r\n");
		temp.append("			url : '${ctx}/"+XO+"/edit',\r\n");
		temp.append("			onSubmit : function() {\r\n");
		temp.append("				progressLoad();\r\n");
		temp.append("				var isValid = $(this).form('validate');\r\n");
		temp.append("				if (!isValid) {\r\n");
		temp.append("					progressClose();\r\n");
		temp.append("				}\r\n");
		temp.append("				return isValid;\r\n");
		temp.append("			},\r\n");
		temp.append("			success : function(result) {\r\n");
		temp.append("				progressClose();\r\n");
		temp.append("				result = $.parseJSON(result);\r\n");
		temp.append("				if (result.success) {\r\n");
		temp.append("					parent.$.modalDialog.openner_dataGrid.datagrid('reload');//之所以能在这里调用到parent.$.modalDialog.openner_dataGrid这个对象，是因为user.jsp页面预定义好了\r\n");
		temp.append("					parent.$.modalDialog.handler.dialog('close');\r\n");
		temp.append("				} else {\r\n");
		temp.append("					parent.$.messager.alert('错误', result.msg, 'error');\r\n");
		temp.append("				}\r\n");
		temp.append("			}\r\n");
		temp.append("		});\r\n");
		temp.append("		\r\n");
		
		temp.append("		\r\n");
		temp.append("	});\r\n");
		temp.append("</script>\r\n");
		temp.append("<div class=\"easyui-layout\" data-options=\"fit:true,border:false\">\r\n");
		temp.append("	<div data-options=\"region:'center',border:false\" title=\"\" style=\"overflow: hidden;padding: 3px;\">\r\n");
		temp.append("		<form id=\""+XO+"EditForm\" method=\"post\">\r\n");
		temp.append("			<table class=\"grid\">\r\n");
		temp.append("           <input name=\"id\" type=\"hidden\"  value=\"${"+XO+".id}\">\r\n");
 
        for(dataVO obj:listDataVO){
			String key="空值";
			String val="空值";
			String isNullState="";
            if(obj.getKey().length()>0){
            	key=obj.getKey();
            }
            if(obj.getVal().length()>0){
            	val=obj.getVal();
            }
            if(obj.isNull){
            	isNullState="data-options=\"required:true\"";
            }
            
            if(obj.getKeySytle().equals("Date")){
            	temp.append("				<tr>\r\n");
        		temp.append("					<td>"+key+"</td>\r\n");
        		temp.append("					<td><input name=\""+val+"\" type=\"text\" onclick=\"WdatePicker({readOnly:true,dateFmt:'yyyy-MM-dd HH:mm:ss'})\" readonly=\"readonly\" value=\"${"+XO+"."+val+"}\"></td>\r\n");
        		temp.append("				</tr>\r\n");
            }else if(obj.getKeySytle().equals("Integer")){
            	
            	temp.append("<script type=\"text/javascript\">\r\n");
            	temp.append("		$(\"#key\").val('${"+XO+"."+val+"}');\r\n");
            	temp.append("</script>\r\n");
            	
            	temp.append("				<tr>\r\n");
        		temp.append("					<td>"+key+"</td>\r\n");
        		temp.append("					<td>\r\n");
				temp.append("					<select id="+val+" name="+val+" class=\"easyui-combobox\" data-options=\"width:140,height:29,editable:false,panelHeight:'auto'\">\r\n");
				temp.append("					<option value=\"0\">值</option>\r\n");
				temp.append("					</select>\r\n");
				temp.append("					</td>\r\n");
        		temp.append("				</tr>\r\n");			
            }else{
            	temp.append("				<tr>\r\n");
        		temp.append("					<td>"+key+"</td>\r\n");
        		temp.append("					<td><input name=\""+val+"\" type=\"text\" placeholder=\"请输入"+key+"\" class=\"easyui-validatebox\" "+isNullState+" value=\"${"+XO+"."+val+"}\"></td>\r\n");
        		temp.append("				</tr>\r\n");
            }
        }
		
		temp.append("			</table>\r\n");
		temp.append("		</form>\r\n");
		temp.append("	</div>\r\n");
		temp.append("</div>\r\n");
		return temp.toString();
	}
	
	public static String viewView(){
		StringBuffer temp  =new StringBuffer();
		temp.append("<%@ page language=\"java\" contentType=\"text/html; charset=UTF-8\" pageEncoding=\"UTF-8\"%>\r\n");
		temp.append("<%@ taglib prefix=\"c\" uri=\"http://java.sun.com/jsp/jstl/core\"%>\r\n");
		temp.append("<c:set var=\"ctx\" value=\"${pageContext.request.contextPath}\"/>\r\n");
		temp.append("<script type=\"text/javascript\">\r\n");
		temp.append("</script>\r\n");
		temp.append("<div class=\"easyui-layout\" data-options=\"fit:true,border:false\">\r\n");
		temp.append("	<div data-options=\"region:'center',border:false\" title=\"\" style=\"overflow: hidden;padding: 3px;\">\r\n");
		temp.append("		<table class=\"grid\">\r\n");
		
		for(dataVO obj:listDataVO){
			String key="空值";
			String val="空值";
			String isNullState="";
            if(obj.getKey().length()>0){
            	key=obj.getKey();
            }
            if(obj.getVal().length()>0){
            	val=obj.getVal();
            }
            if(obj.isNull){
            	isNullState="data-options=\"required:true\"";
            }
        	temp.append("			<tr>\r\n");
    		temp.append("				<td>"+key+"</td>\r\n");
    		temp.append("				<td>${"+XO+"."+val+"}</td>\r\n");
    		temp.append("			</tr>\r\n");
        }
        
		temp.append("		</table>\r\n");
		temp.append("	</div>\r\n");
		temp.append("</div>\r\n");
		return temp.toString();
	}
	
	public static String BO(){
		StringBuffer temp  =new StringBuffer();
		temp.append("package light.mvc.model."+PAGE+";\r\n");
		temp.append("\r\n");
		temp.append("import java.util.Date;\r\n");
		temp.append("import javax.persistence.Column;\r\n");
		temp.append("import javax.persistence.Entity;\r\n");
		temp.append("import javax.persistence.Table;\r\n");
		temp.append("\r\n");
		temp.append("import light.mvc.model.base.IdEntity;\r\n");
		temp.append("\r\n");
		temp.append("import org.hibernate.annotations.DynamicInsert;\r\n");
		temp.append("import org.hibernate.annotations.DynamicUpdate;\r\n");
		temp.append("\r\n");
		temp.append("@Entity\r\n");
		temp.append("@Table(name = \""+tableName+"\")\r\n");
		temp.append("@DynamicInsert(true)\r\n");
		temp.append("@DynamicUpdate(true)\r\n");
		temp.append("public class "+BO+" extends IdEntity implements java.io.Serializable {\r\n");
		temp.append("\r\n");
		
		for(dataVO obj:listDataVO){
			String name="空值";
			String getName="空值";
			String dataName="空值";
			String val="空值";
            if(obj.getGetName().length()>0){
            	getName=obj.getGetName();
            }
            if(obj.getDataName().length()>0){
            	dataName=obj.getDataName();
            }
            if(obj.getVal().length()>0){
            	val=obj.getVal();
            }
            if(obj.getKey().length()>0){
            	name=obj.getKey();
            }
            
            if(obj.getKeySytle().equals("Date")){
            	temp.append("@Column(name = \""+dataName+"\")\r\n");
        		temp.append("	private Date "+val+"; // "+name+"\r\n");
        		temp.append("\r\n");
            }else if(obj.getKeySytle().equals("Integer")){
            	temp.append("@Column(name = \""+dataName+"\")\r\n");
        		temp.append("	private Integer "+val+"; // "+name+"\r\n");
        		temp.append("\r\n");
            }else{
            	temp.append("@Column(name = \""+dataName+"\", length = 36, nullable = false)\r\n");
        		temp.append("	private String "+val+"; // "+name+"\r\n");
        		temp.append("\r\n");
            }            
        }
		
//		temp.append("@Column(name = \"WEI_CONFIG_ID\", length = 36, nullable = false)\r\n");
//		temp.append("	private String weiConfigID; // 配置ID\r\n");
//		temp.append("\r\n");
//		
//		temp.append("public String getWeiConfigID() {\r\n");
//		temp.append("		return weiConfigID;\r\n");
//		temp.append("	}\r\n");
//		temp.append("\r\n");
//		temp.append("public void setWeiConfigID(String weiConfigID) {\r\n");
//		temp.append("		this.weiConfigID = weiConfigID;\r\n");
//		temp.append("}\r\n");
		
		temp.append("\r\n");
		temp.append("}\r\n");
		return temp.toString();
	}
	
	public static String VO(){
		StringBuffer temp  =new StringBuffer();
		temp.append("package light.mvc.pageModel."+PAGE+";\r\n");
		temp.append("\r\n");
		temp.append("import java.util.Date;\r\n");
		temp.append("\r\n");
		temp.append("public class "+VO+" {\r\n");
		temp.append("\r\n");
		temp.append("	private Long id;\r\n");
		temp.append("\r\n");
		for(dataVO obj:listDataVO){
			String name="空值";
			String getName="空值";
			String dataName="空值";
			String val="空值";
            if(obj.getGetName().length()>0){
            	getName=obj.getGetName();
            }
            if(obj.getDataName().length()>0){
            	dataName=obj.getDataName();
            }
            if(obj.getVal().length()>0){
            	val=obj.getVal();
            }
            if(obj.getKey().length()>0){
            	name=obj.getKey();
            }
            
            if(obj.getKeySytle().equals("Date")){
        		temp.append("	private Date "+val+"; // "+name+"\r\n");
        		temp.append("\r\n");
            }else if(obj.getKeySytle().equals("Integer")){
        		temp.append("	private Integer "+val+"; // "+name+"\r\n");
        		temp.append("\r\n");
            }else{
            	temp.append("	private String "+val+"; // "+name+"\r\n");
        		temp.append("\r\n");
            }    
            
        }
		
		
		temp.append("\r\n");
		temp.append("}\r\n");
		return temp.toString();
	}
	
	public static String temp(){
		StringBuffer temp  =new StringBuffer();

		return temp.toString();
	}
}
